"""
程序执行过程中可能会出现异常，我们需要对异常提前做预案
关键字体： try:
            ....
         expect (捕获的异常的类型，多个用逗号隔开):
            如果捕获的异常和实际报的异常不同，无法捕获，不写表示捕获所有异常
            ....
         else :
            如果没有发生异常执行这个代码
         finally：
            无论执行过程中是否出现异常都执行这个代码
"""

print("-------------- 异常简单使用 ------------------")
try:
    f = open('test.txt',mode='r')
except:
    print("文件不存在，开始创建文件")
    f = open('test.txt',mode='w')


print("-------------- 捕获指定异常 ------------------")
try:
    f = open('test2.txt',mode='r')
except (FileNotFoundError):
    print("执行过程中出现错误")


print("-------------- 将捕获的异常返回 ------------------")
try:
    f = open('test2.txt',mode='r')
except (FileNotFoundError) as result:
    print("执行过程中出现错误")
    print(result) # 打印出异常信息

print("-------------- 捕获所有的异常，异常的父类是Exception ------------------")
try:
    f = open('test2.txt',mode='r')
except (Exception) as result:
    print("执行过程中出现错误")
    print(result) # 打印出异常信息
print('hello')

print("--------------异常的else，如果执行过程中没有出现异常才执行else中的代码 ------------------")
try:
    print('i have a test ')
    #print(1/0)
except (Exception) as result:
    print("执行过程中出现错误")
    print(result) # 打印出异常信息
else:
    print("执行过程中没有出现异常")

print("--------------异常的finally，无论是否出现异常执行finally中的代码-----------------")
try:
    ff = open('test22.txt',mode='r')
except (Exception) as result:
    print("执行过程中出现错误")
    print(result) # 打印出异常信息
else:
    print("没有异常真开心")
finally:
    print("无论执行的成功还是失败都执行finally")
    ff.close()
